// pages/course/coursedetail/coursedetail.js
const app = getApp();
Page({
    data: {
        value: 4,
        value2: 3,
        value3: 5,
        isReplyVisible: false,
        downurl: 'http://localhost:8080/file/downLoad?fileName=',
        url: '',
        item: {}, // 用于存储单个课程的详细信息
        pageNum: 1,
        totalPageCount: 0
    },

    getCourseItem(courseId) {
        wx.showLoading({
            title: '数据加载中...',
            mask: true
        });
        let that = this;
        wx.request({
            method: "GET",
            url: "http://localhost:8080/course/findByPrimaryKey?id=",
            data: {
                id: courseId
            },
            success(resp) {
                console.log('请求成功，响应数据:', resp); // 打印响应数据，方便调试
                if (resp.data && resp.data.data) {
                    // 对返回的数据进行字段映射
                    const mappedItem = {
                        course_id: resp.data.data.courseId,
                        course_name: resp.data.data.courseName,
                        consultant_id: resp.data.data.consultantId,
                        course_tabular_chart: resp.data.data.courseTabularChart,
                        course_time: resp.data.data.courseTime,
                        course_mount: resp.data.data.courseMount,
                        course_introduce: resp.data.data.courseIntroduce,
                        course_applicable_population: resp.data.data.courseApplicablePopulation,
                        course_type_id: resp.data.data.courseTypeId,
                        course_learn_harvest: resp.data.data.courseLearnHarvest,
                        course_sub_notice: resp.data.data.courseSubNotice,
                        course_collects: resp.data.data.courseCollects,
                        course_video: resp.data.data.courseVideo,
                        course_pj_count: resp.data.data.coursePjCount,
                        course_dis_price: resp.data.data.courseDisPrice,
                        course_original_price: resp.data.data.courseOriginalPrice,
                        course_learn_count: resp.data.data.courseLearnCount
                    };
                    that.setData({
                        item: mappedItem
                    });
                } else {
                    console.error('后端返回的数据为空或格式不正确:', resp);
                    // 可以在这里给用户一个友好的提示，例如显示一个提示框
                    wx.showToast({
                        title: '获取课程详情失败，请稍后重试',
                        icon: 'none'
                    });
                }
                wx.hideLoading();
            },
            fail(err) {
                console.error('请求失败:', err);
                wx.showToast({
                    title: '请求失败，请检查网络',
                    icon: 'none'
                });
                wx.hideLoading();
            }
        });
    },

    onLoad(options) {
        const courseId = options.id;
        console.log('接收到的 courseId:', courseId);
        if (!courseId) {
            console.error('未获取到课程 ID');
            wx.showToast({
                title: '未获取到课程 ID，请重试',
                icon: 'none'
            });
            return;
        }
        this.setData({
            url: app.globalData.URL
        });
        this.getCourseItem(courseId);
    },

    // 下拉刷新、上拉加载等
    onPullDownRefresh() {
        // 加载第一页数据，数据重置
        this.setData({
            item: {},
            pageNum: 1,
            totalPageCount: 0,
        });
        // 这里如果下拉刷新只是针对单个课程详情页面，可能不需要重新获取课程列表相关操作，可根据实际需求调整
        wx.hideLoading();
        wx.stopPullDownRefresh();
    },

    onReachBottom() {
        if (this.data.isLoading) return;
        if (this.data.pageNum >= this.data.totalPageCount) {
            wx.showToast({
                title: '没有更多数据!',
                icon: 'none'
            });
            return;
        }
        this.setData({
            pageNum: this.data.pageNum + 1
        });
        // 这里如果上拉加载只是针对单个课程详情页面，可能不需要重新获取课程列表相关操作，可根据实际需求调整
    },

    toggleReplyVisibility: function () {
        this.setData({
            isReplyVisible: !this.data.isReplyVisible
        });
    }
});